# 📚 Projeto PZIM — Dicionário com Lista Encadeada em Pascal

Este projeto implementa um sistema de dicionário utilizando **listas encadeadas duplamente ligadas** em Pascal.  
Cada elemento da lista principal representa uma chave (categoria), e cada chave possui um sub-dicionário de palavras (português → inglês).

---

## 🧠 Estrutura de Dados

### 📌 Lista principal (Tlista)
Cada nó representa uma chave:

- `key` → nome da categoria
- `ant` → ponteiro para o anterior
- `prox` → ponteiro para o próximo
- `dicionario` → ponteiro para a lista de verbetes

### 📌 Dicionário (Tverbete)
Cada nó representa uma palavra:

- `br` → palavra em português
- `ing` → tradução em inglês
- `prox` → próximo verbete

---

## 🟢 Estado Atual do Projeto

### ✔ Estrutura de dados
- Lista encadeada dupla implementada
- Sublistas de dicionário por chave
- Inserção ordenada nas listas

---

## 🟡 Funcionalidades Implementadas

### 📌 Funções básicas
- Leitura de string (`ler`)
- Leitura de inteiro (`ler_int`)
- Função de continuar execução (`continuar`)
- Consulta de elementos na lista (`consultar`)

---

### 📌 Lista principal (Tlista)
- Criar lista
- Adicionar chave (inserção ordenada)

---

### 📌 Dicionário (Tverbete)
- Inserção de palavras por chave
- Inserção ordenada no sub-dicionário
- Associação de palavras a uma chave existente

---

## 🔴 Funcionalidades Faltantes

### 📌 Lista principal
- Remover nó da lista (`remover_lista`)
- Listagem completa das chaves
- Percorrer e exibir estrutura completa

---

### 📌 Dicionário
- Remover verbete (`remover_dicionario`)
- Buscar palavra diretamente no dicionário
- Listar palavras de uma chave

---

### 📌 Integração
- Consulta geral (lista + dicionário)
- Sincronização robusta entre lista e sublistas
- Melhor tratamento de erros e validações

---

### 📌 Sistema / Menu
- Melhor tratamento de opção inválida
- Finalização controlada do programa
- Organização das chamadas do menu

---

## 🚨 Problemas Identificados

- Lógica de verificação de palavras pode ser simplificada
- Algumas inserções precisam de melhor controle de fluxo
- Falta padronização em validações
- Algumas funções ainda não implementadas

---

## 🧭 Prioridades de Desenvolvimento

Para evoluir o projeto corretamente:

1. 🔧 Corrigir e simplificar `verificar_palavra`
2. ➖ Implementar `remover_lista`
3. ➖ Implementar `remover_dicionario`
4. 🔍 Criar `consultar_geral`
5. 📋 Implementar listagem completa
6. 🧪 Testar inserção, busca e remoção

---

## 💡 Objetivo do Projeto

O objetivo é praticar:

- Estruturas de dados dinâmicas
- Listas encadeadas duplas
- Organização de dicionários em subestruturas
- Manipulação de ponteiros em Pascal
- Lógica de inserção e busca ordenada

---

## 🛠 Tecnologias

- Linguagem: Pascal
- Biblioteca: CRT (entrada/saída básica)
- Estrutura: Listas encadeadas

---

## 📌 Observação

Este projeto está em desenvolvimento e ainda possui funcionalidades incompletas, mas já demonstra uma estrutura funcional de dicionário hierárquico com listas encadeadas.

---